package com.jixi.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.jixi.common.result.PageResultByReturnOrderDetail;
import com.jixi.common.result.Result;
import com.jixi.pojo.dto.ReturnDownloadDto;
import com.jixi.pojo.entity.ReturnOrderDetail;
import jakarta.servlet.http.HttpServletResponse;

import java.io.IOException;
import java.util.List;

public interface ReturnOrderDetailService extends IService<ReturnOrderDetail> {
   
    /**
     * 退餐订单列表
     *
     * @param pageNum 页码
     * @param pageSize 每页数量
     * @param returnNumber 退餐订单编号
     * @param companyId    餐饮公司id
     * @param schoolId     学校id
     * @param bankCardHolder 接收退款的银行卡持卡人姓名
     * @param cardNumber     接收退款的银行卡号
     * @param returnStatus 退餐订单状态
     * @param timeValue    时间（月）
     * @return 退餐订单列表
     */
    Result<PageResultByReturnOrderDetail> returnOrderPage(Integer pageNum, Integer pageSize, String returnNumber, Long companyId, Long schoolId, String bankCardHolder, String cardNumber, Integer returnStatus, String timeValue);
   
    /**
     * 退餐订单详情
     *
     * @param returnDetailId 退餐订单id
     * @return 退餐订单详情
     */
    ReturnOrderDetail getReturnOrderInfoById(Long returnDetailId);
   
    /**
     * 统计退餐订单数量
     *
     * @return 退餐订单数量
     */
    Long countReturnOrder();
    
    /**
     * 导出各公司各学校按月统计的退餐统计excel
     *
     * */
    void downloadReturnOrder(HttpServletResponse response, ReturnDownloadDto returnDownloadDto) throws IOException;
    
    /**
     * 单选/批量修改退餐订单退款状态
     *
     * @param returnDetailIds 退餐订单id（多选）
     * @param refundStatus    退款状态
     * @return 操作结果
     */
	Result updateReturnOrderRefundStatus(List<Long> returnDetailIds, Integer refundStatus);
}
